/**
 * author      : dormi330
 * date        : 2018/6/24
 * project     : mybatis
 * description : TODO
 */

package com.deep.trade.infrastructure.mybatis.order;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.deep.trade.domain.order.TradeOrder;

import java.util.Date;
import java.util.List;


@Mapper
public interface TradeOrderMapper {

    // 插入新数据
    void insert(@Param("eo") TradeOrder eo);

    // 更新状态, 返回更新的条数
    int updateStatus(
            // condition
            @Param("tenantCode") String tenantCode,
            @Param("tradeOrderId") String tradeOrderId,
            @Param("fromVersion") long fromVersion,

            // changed field
            @Param("toStatus") String toStatus,
            @Param("rejectReason") String rejectReason,
            @Param("auditedAt") Date auditedAt,
            @Param("updatedBy") String updatedBy
    );

    // ============= query ===============

    // 查询 OrderSummary 对应的 TradeOrder
    List<TradeOrder> queryByOrderSummary(@Param("tenantCode") String tenantCode, @Param("orderSummaryId") String orderSummaryId);

    // 根据id 查询单个 TradeOrder
    TradeOrder queryById(@Param("tenantCode") String tenantCode, @Param("id") String id);

    // 根据 memberId 查询
    List<TradeOrder> queryByMember(@Param("tenantCode") String tenantCode, @Param("memberId") String memberId);

    // 查询租户下的 tradeorder
    List<TradeOrder> queryByTenant(@Param("tenantCode") String tenantCode);


}
